package pe.gob.foncodes.ssa.bs.seguridad.dao;

import java.util.List;
import pe.gob.foncodes.ssa.bs.common.dao.GenericDao;
import pe.gob.foncodes.ssa.bs.common.util.DaoException;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Accion;
import pe.gob.foncodes.ssa.bs.seguridad.domain.HorarioPerfil;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Modulo;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Opcion;
import pe.gob.foncodes.ssa.bs.seguridad.domain.Usuario;

public interface UsuarioDao extends GenericDao {
    
    public List<Opcion> getFirstLevelNodes(Long idUsuario, List<Long> usuarioPerfilList) throws DaoException;
    
    public List<Opcion> getFirstLevelNodes(Long idUsuario, Long idModulo, String codZonal) throws DaoException;
    
    public List<Accion> getOtherLevelNodes(Long idNodeSup, Long idUsuario, List<Long> usuarioPerfilList, String codZonal) throws DaoException;
    
    public List<Accion> getOtherLevelNodes(Long idNodeSup, Long idUsuario, String codZonal) throws DaoException;
    
    public String retornaClaveEncriptada(String txtClave, String codUsuario) throws DaoException;
    
    public List<HorarioPerfil> retornaHorarioPorPerfiles(List<Long> usuarioPerfilList, String estado) throws DaoException;
    
    public List<Usuario> getUsuarioByUnidadTerritorialZonalUsuario(String codZonal, String codUnidad, String codUsuario) throws DaoException;
    
    public Modulo getModuloPadre(Long nidModulo) throws DaoException;
    
}